package com.example.demo.day0225;

public class Exception4 {
    public static void main(String[] args) {//main方法可以抛出异常，异常被抛到虚拟机上，程序无法处理
//        B b=new B();
//        try{//在调用方使用try捕获处理
//            b.test();
//        }catch (java.lang.Exception e3){
//            e3.getMessage();
//            e3.printStackTrace();
//            b.test();
//        }
        B b=new B();
        try{
            b.test1(-100);
        }catch (java.lang.Exception e3){
            e3.printStackTrace();
        }
    }
}
class B{
    int i;
    int age;
    public void test() throws NullPointerException{//可以用throws在代码中抛出异常
        B b = null;
        System.out.println(b.i);
    }
    public void test1(int age) throws java.lang.Exception {
        if (age >= 0 && age <= 150){
            this.age=age;
            System.out.println("age is "+this.age);
        }else{
            throw new java.lang.Exception("The age ranges from 0 to 150");
        }
    }
}
class C extends B {
    @Override
//    public void test() throws java.lang.Exception {//子类重写父类方法是，不能抛出比父类方法更大范围的异常
    public void test() throws NullPointerException{
        super.test();
    }
}
